package cn.itcast.zt.extend;

import org.springframework.context.ApplicationContextInitializer;
import org.springframework.context.ConfigurableApplicationContext;

/**
 * @author zhangtian105
 * @ClassName OneApplicationContextInitializer.java
 * @projectName SpringBoot2.x
 * @Description
 * 这是整个spring容器在刷新之前初始化ConfigurableApplicationContext的回调接口，
 * 简单来说，就是在容器刷新之前调用此类的initialize方法。这个点允许被用户自己扩展。
 * 用户可以在整个spring容器还没被初始化之前做一些事情。
 * 有以下三种方式：
 *  在启动类中用springApplication.addInitializers(new TestApplicationContextInitializer())语句加入
 *  配置文件配置context.initializer.classes=com.example.demo.TestApplicationContextInitializer
 *  Spring SPI扩展，在spring.factories中加入org.springframework.context.ApplicationContextInitializer=com.example.demo.TestApplicationContextInitializer
 *
 * @createTime 2020年11月10日 16:26:00
 */
public class _1ApplicationContextInitializer implements ApplicationContextInitializer {
    @Override
    public void initialize(ConfigurableApplicationContext configurableApplicationContext) {
        System.out.println("【ApplicationContextInitializer】org.springframework.context.ApplicationContextInitializer.......");
    }
}
